﻿//------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Microsoft.ResourceManagement.Samples.ResourceManagementClient
{
    public sealed class Constants
    {
        private Constants()
        { }
        // Namespaces
        public const String NamespaceResourceManagement = "http://schemas.microsoft.com/2006/11/ResourceManagement";
        public const String NamespaceSoap = "http://www.w3.org/2003/05/soap-envelope";
        public const String NamespaceWSEnumeration = "http://schemas.xmlsoap.org/ws/2004/09/enumeration";
        public const String NamespaceWSTransfer = "http://http://scheams.xmlsoap.org/ws/2004/09/transfer";
        public const String NamespaceWSAddressing = "http://schemas.xmlsoap.org/ws/2004/08/addressing";
        public const String NamespaceXsd = "http://www.w3.org/2001/XMLSchema";
        public const String NamespaceXsdInstance = "http://www.w3.org/2001/XMLSchema-instance";
        public const String NamespaceDirectoryAccess = "http://schemas.microsoft.com/2006/11/IdentityManagement/DirectoryAccess";

        // Config files
        public const String ResourceClientDefaultConfig = "ServiceMultipleTokenBinding_Resource";
        public const String ResourceFactoryDefaultConfig = "ServiceMultipleTokenBinding_ResourceFactory";
        public const String SearchClientDefaultConfig = "ServiceMultipleTokenBinding_Search";

        // Default dialects
        public const String WSEnumerationDefaultFilterDialect = "http://schemas.microsoft.com/2006/11/XPathFilterDialect";
        public const String ExtensionIdentityManagementOperationsDefaultDialect = "http://schemas.microsoft.com/2006/11/ResourceManagement/Dialect/IdentityAttributeType-20080602";
        public const String ExtensionIdentityManagementOperationsChangeAdd = "Add";
        public const String ExtensionIdentityManagementOperationsChangeReplace = "Replace";
        public const String ExtensionIdentityManagementOperationsChangeDelete = "Delete";
        public const String ExtensionHeaderName = "IdentityManagementOperation";
        public const String ExtensionResourceReferenceHeaderName = "ResourceReferenceProperty";
        public const String ExtensionResourcePropertiesHeaderName = "ReferenceProperties";

        // SOAP Action Headers
        public const String WSEnumerationEnumerateAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate";
        public const String WSEnumerationEnumerateResponseAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/EnumerateResponse";
        public const String WSEnumerationGetStatusAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/GetStatus";
        public const String WSEnumerationGetStatusResponseAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/GetStatusResponse";
        public const String WSEnumerationPullAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull";
        public const String WSEnumerationPullResponseAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/PullResponse";
        public const String WSEnumerationReleaseAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/Release";
        public const String WSEnumerationReleaseResponseAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/ReleaseResponse";
        public const String WSEnumerationRenewAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/Renew";
        public const String WSEnumerationRenewResponseAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/RenewResponse";
        public const String WSTransferCreateAction = "http://schemas.xmlsoap.org/ws/2004/09/transfer/Create";
        public const String WSTransferCreateResponseAction = "http://schemas.xmlsoap.org/ws/2004/09/transfer/CreateResponse";
        public const String WSTransferDeleteAction = "http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete";
        public const String WSTransferDeleteResponseAction = "http://schemas.xmlsoap.org/ws/2004/09/transfer/DeleteResponse";
        public const String WSTransferGetAction = "http://schemas.xmlsoap.org/ws/2004/09/transfer/Get";
        public const String WSTransferGetResponseAction = "http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse";
        public const String WSTransferPutAction = "http://schemas.xmlsoap.org/ws/2004/09/transfer/Put";
        public const String WSTransferPutResponseAction = "http://schemas.xmlsoap.org/ws/2004/09/transfer/PutResponse";

        // XSI Types
        public const String DataTypeXSString = "stringType";
        public const String DataTypeXSBoolean = "booleanType";
        public const String DataTypeXSInteger = "integerType";
        public const String DataTypeXSReference = "referenceType";

        // key attribute names
        public const String AttributeTypeObjectType = "ObjectType";
        public const String AttributeTypeObjectId = "ObjectID";
    }
}
